Conversation
# Conflicts: # tests/test_config_loader.py
✅ Deploy Preview for platodocs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR added end-to-end SmolVLA support backed by LeRobot, including optional dependency gating, a LeRobot datasource and trainer path, SmolVLA model loading, runnable experiment configurations, and documentation for setup and operations. It also hardened FedAvg state exchange so adapter-style fine-tuning, mixed dtypes, and transport-safe checkpoint payloads continue to work within Plato's existing aggregation flow.
Changes
Added a extra and guarded import paths so SmolVLA and LeRobot support can be enabled without changing the default Plato installation path.
Added a LeRobot datasource with deterministic episode-aware partitioning, dataset validation, canonical Plato sample mapping, and configurable image-transform and temporal-window handling.
Added a SmolVLA model wrapper that resolves pretrained policies from config, supports full and adapter fine-tuning modes, and validates checkpoint compatibility for federated training.
Added a LeRobot trainer backend that integrates policy preprocessing, device and precision controls, custom collate behavior, and loss normalization for robotics workloads.
Added runnable LeRobot experiment profiles for single-client smoke runs, two-client FedAvg smoke runs, and longer full fine-tuning workflows.
Hardened FedAvg payload extraction and loading to support adapter-only exchanges, payload-size safeguards, bf16 transport casting, and dtype-safe restoration for non-floating tensors.
Added unit and smoke integration coverage for configuration loading, datasource wiring, model and trainer behavior, and the end-to-end SmolVLA LeRobot runtime path.
Added installation guidance, configuration parameter documentation, and an operator runbook for setting up and running SmolVLA training with LeRobot datasets.
Validation
platform darwin -- Python 3.13.12, pytest-8.4.2, pluggy-1.6.0
rootdir: /Users/bli/Playground/plato
configfile: pyproject.toml
plugins: hydra-core-1.3.2
collected 24 items
tests/algorithms/test_fedavg_algorithm.py ..... [ 20%]
tests/datasources/test_lerobot_datasource.py ... [ 33%]
tests/models/test_smolvla_model.py .. [ 41%]
tests/trainers/test_lerobot_trainer.py ... [ 54%]
tests/test_config_loader.py .......... [ 95%]
tests/integration/test_lerobot_smolvla_smoke.py . [100%]
============================== 24 passed in 0.10s ==============================.